██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Twofish
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
mwbqTwofish, nell'ambito della mwbgcrittografia, è un mwbwalgoritmo di cifratura a blocchi a mwcachiave simmetrica, con una mwcqdimensione del blocco di 128 mwcgbit e mwcwdimensione della chiave di 128, 192 o 256 bit.
Contents
• Storia
• Note
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Storia
Presentato dai Counterpane Labs di mwdwBruce Schneier, fu uno dei cinque finalisti nel mweaprocesso di standardizzazione dell'Advanced Encryption Standard intrapreso dal mweqNIST nel 1997 per rimpiazzare mwegTriple DES.
Del team di sviluppo, oltre a Schneier (creatore del predecessore mwfaBlowfish), fecero parte anche John Kelsey, Doug Whiting, David Wagner, Chris Hall e Niels Ferguson.cite-ref-1[1] Un team allargato che successivamente andò a compiere ulteriori analisi su Twofish e gli altri candidati ad AES incluse Stefan Lucks (ideatore dell'attacco a Triple DES), Tadayoshi Kohno e Mike Stay.cite-ref-2[2]
L'algoritmo non è stato brevettato e la mwhgreference implementation è stata rilasciata nel mwhwpubblico dominio. Grazie a ciò, Twofish viene ad esempio utilizzato nello standard mwiaOpenPGP (mwiqRFC 4880), anche se al momento è ancora meno diffuso di mwigBlowfish.
Caratteristiche
Twofish utilizza una struttura a mwjqrete di Feistel, come DES, reiterata per 16 mwjground nella versione completa, con un mwjwmwkaWhitening in ingresso e in uscita. L'algoritmo distribuisce i blocchi di testo in chiaro di mwkq128 bit in parole di mwkg32 bit su cui svolge gran parte delle operazioni di cifratura.cite-ref-criprat-3-0[3] La funzione biettiva mwlwF (il quadrato tratteggiato al centro dello schema) è composta da due copie della funzione mwmag, composta a sua volta da quattro mwmqS-Box e una matrice fissa 4x4 mwmgMaximum Distance Separable (MDS), seguite da una mwmwPseudo-trasformata di Hadamard (PHT) che deriva dalla famiglia di cifrari mwnaSAFER e un punto di introduzione di mwnqsottochiavi, ovvero materiale derivato dalla chiave attraverso il mwngmwnwkey schedule (o gestore della chiave).
Le S-Box (mwoqSubstitution-box) di Twofish, precalcolate e dipendenti dai bit della chiave anziché costanti come negli altri candidati AES,cite-ref-criprat-3-1[3] e la progettazione accurata dell'algoritmo di mwpgkey schedule sono le due caratteristiche distintive di Twofish.
Attualmente non si conosce un attacco a Twofish più efficiente della mwrgforza bruta, malgrado i diversi tentativi effettuati.cite-ref-5[5] Un algoritmo che può solo essere risolto con la mwswbrute force, o comunque di cui non si è ancora trovato il modo di aggirare le prestazioni con un codice specifico e studiato per l'unico scopo di mwtaromperlo, viene detto "hack-proof": a prova di hacker.
Note
cite-note-11. ↑ mwuwAES Round 2 Information su nist.gov
cite-note-22. ↑ mwvw(mwwamwwqEN) Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson, Tadayoshi Kohno, Mike Stay, mwwgThe Twofish Team’s Final Comments on AES Selection (mwwwmwxaPDF), su mwxqschneier.com, 15 maggio 2000. mwxgURL consultato il 16 agosto 2010 mwxw(archiviato dall'mwyaurl originale il 2 gennaio 2010).
cite-note-criprat-33. ↑ mwzwmwaaFerguson e Schneier, 2005,mwaq pp. 47-49.
cite-note-44. ↑ mwbq(mwbgmwbwEN) Bruce Schneier, Doug Whiting, mwcamwcqA Performance Comparison of the Five AES Finalists, su mwcgschneier.com, 7 aprile 2000. mwcwURL consultato il 16 agosto 2010.
cite-note-55. ↑ mweacommento di Schneier sul suo blog - 23 novembre 2005
Bibliografia
• citerefferschNiels Ferguson, Bruce Schneier, Crittografia pratica, Apogeo, 2005 [2003]. URL consultato il 16 agosto 2010.
Collegamenti esterni